package com.luke.base.domain;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.luke.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 问题反馈对象 lk_problem
 * 
 * @author luke
 * @date 2021-06-02
 */
public class LkProblem implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 流水号 */
    @Excel(name = "流水号")
    private String sequenceNumber;

    /** 回复时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发起时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    /** 用户id */
    @Excel(name = "用户id")
    private Long lkUserId;

    /** 问题标题 */
    @Excel(name = "问题标题")
    private String problemTitle;

    /** 问题内容 */
    @Excel(name = "问题内容")
    private String problemContent;

    /** 车辆型号 */
    @Excel(name = "车辆型号")
    private String vehicleModel;

    /** 问题图片路径 */
    @Excel(name = "问题图片路径")
    private String problemImage;

    /** 问题状态 0待处理 1已确认 2已处理 */
    @Excel(name = "问题状态 0待处理 1已确认 2已处理")
    private String handleStatus;

    /** 是否与用户沟通 0已沟通 1未沟通 */
    @Excel(name = "是否与用户沟通 0已沟通 1未沟通")
    private String confirmStatus;

    /** 回复内容 */
    @Excel(name = "回复内容")
    private String answerContent;

    /** 回复时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "回复时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date answerTime;

    /** 处理内容 */
    @Excel(name = "处理内容")
    private String handleContent;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 管理员id */
    @Excel(name = "管理员id")
    private Long userId;

    private LkUser lkUser;

    /** 请求参数 */
    private Map<String, Object> params;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setSequenceNumber(String sequenceNumber) 
    {
        this.sequenceNumber = sequenceNumber;
    }

    public String getSequenceNumber() 
    {
        return sequenceNumber;
    }
    public void setLkUserId(Long lkUserId) 
    {
        this.lkUserId = lkUserId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getLkUserId()
    {
        return lkUserId;
    }
    public void setProblemTitle(String problemTitle) 
    {
        this.problemTitle = problemTitle;
    }

    public String getProblemTitle() 
    {
        return problemTitle;
    }
    public void setProblemContent(String problemContent) 
    {
        this.problemContent = problemContent;
    }

    public String getProblemContent() 
    {
        return problemContent;
    }
    public void setVehicleModel(String vehicleModel) 
    {
        this.vehicleModel = vehicleModel;
    }

    public String getVehicleModel() 
    {
        return vehicleModel;
    }
    public void setProblemImage(String problemImage) 
    {
        this.problemImage = problemImage;
    }

    public String getProblemImage() 
    {
        return problemImage;
    }
    public void setHandleStatus(String handleStatus) 
    {
        this.handleStatus = handleStatus;
    }

    public String getHandleStatus() 
    {
        return handleStatus;
    }
    public void setConfirmStatus(String confirmStatus) 
    {
        this.confirmStatus = confirmStatus;
    }

    public String getConfirmStatus() 
    {
        return confirmStatus;
    }
    public void setAnswerContent(String answerContent) 
    {
        this.answerContent = answerContent;
    }

    public String getAnswerContent() 
    {
        return answerContent;
    }
    public void setAnswerTime(Date answerTime) 
    {
        this.answerTime = answerTime;
    }

    public Date getAnswerTime() 
    {
        return answerTime;
    }
    public void setHandleContent(String handleContent) 
    {
        this.handleContent = handleContent;
    }

    public String getHandleContent() 
    {
        return handleContent;
    }
    public void setHandleTime(Date handleTime) 
    {
        this.handleTime = handleTime;
    }

    public Date getHandleTime() 
    {
        return handleTime;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public LkUser getLkUser() {
        return lkUser;
    }

    public void setLkUser(LkUser lkUser) {
        this.lkUser = lkUser;
    }

    public Map<String, Object> getParams()
    {
        if (params == null)
        {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sequenceNumber", getSequenceNumber())
            .append("createTime", getCreateTime())
            .append("lkUserId", getLkUserId())
            .append("problemTitle", getProblemTitle())
            .append("problemContent", getProblemContent())
            .append("vehicleModel", getVehicleModel())
            .append("problemImage", getProblemImage())
            .append("handleStatus", getHandleStatus())
            .append("confirmStatus", getConfirmStatus())
            .append("answerContent", getAnswerContent())
            .append("answerTime", getAnswerTime())
            .append("handleContent", getHandleContent())
            .append("handleTime", getHandleTime())
            .append("userId", getUserId())
            .toString();
    }
}
